package org.example.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.math.BigDecimal;
import java.util.Date;

public class InnerMarketDomainVo {
    private String code;
    private String name;
    private BigDecimal openPoint;
    private BigDecimal curPoint;
    private BigDecimal preClosePoint;
    private long tradeAmt;
    private BigDecimal tradeVol;
    private BigDecimal upDown;
    private BigDecimal rose;
    private BigDecimal amplitude;
    @JsonFormat(pattern = "YYYY-MM-DD HH:mm:ss")
    private Date curTime;

    public InnerMarketDomainVo() {
    }

    public String getCode() {
        return this.code;
    }

    public String getName() {
        return this.name;
    }

    public BigDecimal getOpenPoint() {
        return this.openPoint;
    }

    public BigDecimal getCurPoint() {
        return this.curPoint;
    }

    public BigDecimal getPreClosePoint() {
        return this.preClosePoint;
    }

    public long getTradeAmt() {
        return this.tradeAmt;
    }

    public BigDecimal getTradeVol() {
        return this.tradeVol;
    }

    public BigDecimal getUpDown() {
        return this.upDown;
    }

    public BigDecimal getRose() {
        return this.rose;
    }

    public BigDecimal getAmplitude() {
        return this.amplitude;
    }

    public Date getCurTime() {
        return this.curTime;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setOpenPoint(BigDecimal openPoint) {
        this.openPoint = openPoint;
    }

    public void setCurPoint(BigDecimal curPoint) {
        this.curPoint = curPoint;
    }

    public void setPreClosePoint(BigDecimal preClosePoint) {
        this.preClosePoint = preClosePoint;
    }

    public void setTradeAmt(long tradeAmt) {
        this.tradeAmt = tradeAmt;
    }

    public void setTradeVol(BigDecimal tradeVol) {
        this.tradeVol = tradeVol;
    }

    public void setUpDown(BigDecimal upDown) {
        this.upDown = upDown;
    }

    public void setRose(BigDecimal rose) {
        this.rose = rose;
    }

    public void setAmplitude(BigDecimal amplitude) {
        this.amplitude = amplitude;
    }

    @JsonFormat(pattern = "YYYY-MM-DD HH:mm:ss")
    public void setCurTime(Date curTime) {
        this.curTime = curTime;
    }

    public boolean equals(final Object o) {
        if (o == this) return true;
        if (!(o instanceof InnerMarketDomainVo)) return false;
        final InnerMarketDomainVo other = (InnerMarketDomainVo) o;
        if (!other.canEqual((Object) this)) return false;
        final Object this$code = this.getCode();
        final Object other$code = other.getCode();
        if (this$code == null ? other$code != null : !this$code.equals(other$code)) return false;
        final Object this$name = this.getName();
        final Object other$name = other.getName();
        if (this$name == null ? other$name != null : !this$name.equals(other$name)) return false;
        final Object this$openPoint = this.getOpenPoint();
        final Object other$openPoint = other.getOpenPoint();
        if (this$openPoint == null ? other$openPoint != null : !this$openPoint.equals(other$openPoint)) return false;
        final Object this$curPoint = this.getCurPoint();
        final Object other$curPoint = other.getCurPoint();
        if (this$curPoint == null ? other$curPoint != null : !this$curPoint.equals(other$curPoint)) return false;
        final Object this$preClosePoint = this.getPreClosePoint();
        final Object other$preClosePoint = other.getPreClosePoint();
        if (this$preClosePoint == null ? other$preClosePoint != null : !this$preClosePoint.equals(other$preClosePoint))
            return false;
        if (this.getTradeAmt() != other.getTradeAmt()) return false;
        final Object this$tradeVol = this.getTradeVol();
        final Object other$tradeVol = other.getTradeVol();
        if (this$tradeVol == null ? other$tradeVol != null : !this$tradeVol.equals(other$tradeVol)) return false;
        final Object this$upDown = this.getUpDown();
        final Object other$upDown = other.getUpDown();
        if (this$upDown == null ? other$upDown != null : !this$upDown.equals(other$upDown)) return false;
        final Object this$rose = this.getRose();
        final Object other$rose = other.getRose();
        if (this$rose == null ? other$rose != null : !this$rose.equals(other$rose)) return false;
        final Object this$amplitude = this.getAmplitude();
        final Object other$amplitude = other.getAmplitude();
        if (this$amplitude == null ? other$amplitude != null : !this$amplitude.equals(other$amplitude)) return false;
        final Object this$curTime = this.getCurTime();
        final Object other$curTime = other.getCurTime();
        if (this$curTime == null ? other$curTime != null : !this$curTime.equals(other$curTime)) return false;
        return true;
    }

    protected boolean canEqual(final Object other) {
        return other instanceof InnerMarketDomainVo;
    }

    public int hashCode() {
        final int PRIME = 59;
        int result = 1;
        final Object $code = this.getCode();
        result = result * PRIME + ($code == null ? 43 : $code.hashCode());
        final Object $name = this.getName();
        result = result * PRIME + ($name == null ? 43 : $name.hashCode());
        final Object $openPoint = this.getOpenPoint();
        result = result * PRIME + ($openPoint == null ? 43 : $openPoint.hashCode());
        final Object $curPoint = this.getCurPoint();
        result = result * PRIME + ($curPoint == null ? 43 : $curPoint.hashCode());
        final Object $preClosePoint = this.getPreClosePoint();
        result = result * PRIME + ($preClosePoint == null ? 43 : $preClosePoint.hashCode());
        final long $tradeAmt = this.getTradeAmt();
        result = result * PRIME + (int) ($tradeAmt >>> 32 ^ $tradeAmt);
        final Object $tradeVol = this.getTradeVol();
        result = result * PRIME + ($tradeVol == null ? 43 : $tradeVol.hashCode());
        final Object $upDown = this.getUpDown();
        result = result * PRIME + ($upDown == null ? 43 : $upDown.hashCode());
        final Object $rose = this.getRose();
        result = result * PRIME + ($rose == null ? 43 : $rose.hashCode());
        final Object $amplitude = this.getAmplitude();
        result = result * PRIME + ($amplitude == null ? 43 : $amplitude.hashCode());
        final Object $curTime = this.getCurTime();
        result = result * PRIME + ($curTime == null ? 43 : $curTime.hashCode());
        return result;
    }

    public String toString() {
        return "InnerMarketDomain(code=" + this.getCode() + ", name=" + this.getName() + ", openPoint=" + this.getOpenPoint() + ", curPoint=" + this.getCurPoint() + ", preClosePoint=" + this.getPreClosePoint() + ", tradeAmt=" + this.getTradeAmt() + ", tradeVol=" + this.getTradeVol() + ", upDown=" + this.getUpDown() + ", rose=" + this.getRose() + ", amplitude=" + this.getAmplitude() + ", curTime=" + this.getCurTime() + ")";
    }
}
